TreeModelFilter: Fix uninitialized memory read.
authorAlexander Larsson <alexl@redhat.com>
Thu, 29 Oct 2015 14:17:44 +0000 (15:17 +0100)
committerAlexander Larsson <alexl@redhat.com>
Thu, 5 Nov 2015 15:52:51 +0000 (16:52 +0100)
We were copying an iterator that sometimes was not initialized,
which caused debugger warnings in VS2015.

gtk/gtktreemodelfilter.c

index 01f3e17f29239ba5992a035eab3f33565aba5356..7b77ef1de2ba6840de532cece04c299a60108fef 100644 (file)
@@ -1357,20 +1357,20 @@ gtk_tree_model_filter_check_ancestors (GtkTreeModelFilter *filter,
   int *indices = gtk_tree_path_get_indices (path);
   FilterElt *elt;
   FilterLevel *level;
-  GtkTreeIter c_iter, tmp_iter;
+  GtkTreeIter c_iter, tmp_iter, *root_iter;
 
   level = FILTER_LEVEL (filter->priv->root);
 
   if (!level)
     return;
 
-  if (filter->priv->virtual_root)
-    gtk_tree_model_get_iter (filter->priv->child_model, &c_iter,
-                             filter->priv->virtual_root);
-
-  tmp_iter = c_iter;
+  root_iter = NULL;
+  if (filter->priv->virtual_root &&
+      gtk_tree_model_get_iter (filter->priv->child_model, &tmp_iter,
+                               filter->priv->virtual_root))
+    root_iter = &tmp_iter;
   gtk_tree_model_iter_nth_child (filter->priv->child_model, &c_iter,
-                                 filter->priv->virtual_root ? &tmp_iter : NULL,
+                                 root_iter,
                                  indices[i]);
 
   while (i < gtk_tree_path_get_depth (path) - 1)